home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / FWInter.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  5.1 KB  |  173 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWInter.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWINTER_H
  11. #define FWINTER_H
  12.  
  13. #ifndef FWPRTDEF_H
  14. #include "FWPrtDef.h"
  15. #endif
  16.  
  17. // ----- Foundation Includes -----
  18.  
  19. #ifndef FWSTDDEF_H
  20. #include "FWStdDef.h"
  21. #endif
  22.  
  23. #ifndef FWRUNTYP_H
  24. #include "FWRunTyp.h"
  25. #endif
  26.  
  27. #ifndef FWTCOLL_H
  28. #include "FWTColl.h"
  29. #endif
  30.  
  31. // ----- OpenDoc Includes -----
  32.  
  33. #ifndef _ODTYPES_
  34. #include <ODTypes.h>
  35. #endif
  36.  
  37. //========================================================================================
  38. //    Forward Declarations
  39. //========================================================================================
  40.  
  41. class ODStorageUnit;
  42. class ODPasteAsResult;
  43. class ODDraft;
  44.  
  45. class FW_CPart;
  46. class FW_CFrame;
  47. class FW_CCloneInfo;
  48. class FW_CPromise;
  49. class FW_CSelection;
  50. class FW_CContent;
  51. class FW_CPromise;
  52. class FW_CLinkSource;
  53.  
  54. //========================================================================================
  55. //    class FW_CDataInterchange
  56. //========================================================================================
  57.  
  58. class FW_CDataInterchange
  59. {
  60.     friend class FW_CPromiseIterator;
  61.     
  62. //----------------------------------------------------------------------------------------
  63. //    Initialization/Destruction
  64. //
  65. public:    
  66.     FW_CDataInterchange(Environment* ev, FW_CPart* part);
  67.     virtual ~FW_CDataInterchange();
  68.  
  69. //----------------------------------------------------------------------------------------
  70. //    Public API
  71. //
  72. public:
  73.  
  74.     virtual void                    ExternalizeData(Environment* ev, 
  75.                                               FW_CContent* content,
  76.                                             FW_CFrame* scopeFrame,
  77.                                             ODStorageUnit* destinationSU, 
  78.                                               FW_StorageKinds storageKind, 
  79.                                             ODCloneKind cloneKind);
  80.     
  81.     virtual FW_EInternalizeResult    InternalizeData(Environment* ev, 
  82.                                               FW_CContent* content,
  83.                                             FW_CFrame* scopeFrame,
  84.                                             ODStorageUnit* sourceSU, 
  85.                                             FW_StorageKinds storageKind, 
  86.                                             ODCloneKind cloneKind,
  87.                                             ODPasteAsResult* embedAsInfo);
  88.  
  89.     void                            ResolveClipboardPromise(Environment* ev);
  90.     void                            ResolveAllPromises(Environment* ev);
  91.  
  92.     ODTranslateResult                TranslateData(Environment* ev, 
  93.                                             ODStorageUnit* storageUnit,
  94.                                             ODType translateKind,
  95.                                             ODType desiredKind);
  96.  
  97.     ODUpdateID                        GetLastClipboardUpdateID(Environment* ev) const;
  98.  
  99. //----------------------------------------------------------------------------------------
  100. //    For Internal Use Only
  101. //
  102. public:
  103.     virtual void                    PrivPostInternalizeData(Environment* ev, 
  104.                                             FW_CContent* content,
  105.                                             FW_CCloneInfo* cloneInfo,
  106.                                             FW_EInternalizeResult result);
  107.                             
  108.     virtual void                    PrivHandleExternalizeData(Environment* ev, 
  109.                                             FW_CContent* content,
  110.                                             ODStorageUnit* destinationSU, 
  111.                                             FW_StorageKinds storageKind, 
  112.                                             FW_CCloneInfo* cloneInfo);
  113.     virtual FW_EInternalizeResult    PrivHandleInternalizeData(Environment* ev, 
  114.                                             FW_CContent* content,
  115.                                             ODStorageUnit* sourceSU, 
  116.                                             FW_StorageKinds storageKind, 
  117.                                             FW_CCloneInfo* cloneInfo);
  118.  
  119.     void                            PrivSetClipboardUpdateID(Environment* ev, ODUpdateID id);
  120.  
  121.     // ----- Promises -----
  122.     void                             PrivDeletePromises(Environment *ev, 
  123.                                             FW_StorageKinds storageKind);    
  124.     void                            PrivPromise(Environment *ev, 
  125.                                             FW_CPromise* promise,
  126.                                             ODStorageUnit* storageUnit, 
  127.                                             ODPropertyName propertyName, 
  128.                                             ODValueType valueType);
  129.     
  130.     void                             PrivPromiseDeleted(Environment *ev, 
  131.                                             FW_CPromise* promise);
  132.     void                             PrivHandleFulfillPromise(     Environment* ev, 
  133.                                                                 FW_CPromise* promise,
  134.                                                                 ODStorageUnitView* promiseSUView);
  135.  
  136. protected:
  137.     virtual FW_EInternalizeResult    PrivHandleEmbedAs(Environment* ev, 
  138.                                             FW_CContent* content,
  139.                                             ODStorageUnit* sourceSU,
  140.                                             FW_CCloneInfo* cloneInfo,
  141.                                             ODPasteAsResult* embedAsInfo);                        
  142.  
  143. //----------------------------------------------------------------------------------------
  144. //    Data Members
  145. //
  146. protected:
  147.     FW_CPart*                            fPart;
  148.  
  149. private:
  150.     FW_CPromise*                        fClipboardPromise;
  151.     FW_CPromise*                        fDragAndDropPromise;
  152.     FW_CPromise*                        fLinkPromise;
  153.     ODUpdateID                            fClipboardUpdateID;        // update id of last Copy to clipboard
  154. };
  155.  
  156. //----------------------------------------------------------------------------------------
  157. //    FW_CDataInterchange::GetLastClipboardUpdateID
  158. //----------------------------------------------------------------------------------------
  159. inline ODUpdateID FW_CDataInterchange::GetLastClipboardUpdateID(Environment*) const
  160. {
  161.     return fClipboardUpdateID;
  162. }
  163.  
  164. //----------------------------------------------------------------------------------------
  165. //    FW_CDataInterchange::PrivSetClipboardUpdateID
  166. //----------------------------------------------------------------------------------------
  167. inline void FW_CDataInterchange::PrivSetClipboardUpdateID(Environment*, ODUpdateID id)
  168. {
  169.     fClipboardUpdateID = id;
  170. }
  171.  
  172.  
  173. #endif